package com.yzg.simple.nio;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * @ClassName ChannelOut
 * @Description TODO
 * @Authoe weiyan
 * @Date 2019/12/20 14:28
 * @Version 1.0
 *  再所有的Channel 中都是 抽象类， 统一的实现类就是 *Impl 如： FileChannelImpl
 * Channel  -- FileChannel 渠道的说明  配合ByteBuffer 使用
 **/
public class ChannelOut {

    public static void main(String[] args) throws Exception {
        String name = "张三，UTF-8";
        // 指定扩容大小
        ByteBuffer byteBuffer  = ByteBuffer.allocate(name.getBytes().length);
        FileOutputStream stream = new FileOutputStream("d://hello.txt");
        // 添加缓冲区
        byteBuffer.put(name.getBytes());
        // 得到渠道
        FileChannel channel = stream.getChannel();
        // 缓冲区坐标重置
        byteBuffer.flip();
        // 写出
        channel.write(byteBuffer);
        stream.close();
    }

}